package com.ruoyi.dataBase.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 交通物流规划业务对象 industrial_transport_plan
 *
 * @author yangzhen
 * @date 2025-11-10
 */

@Data
@EqualsAndHashCode(callSuper = true)
@Schema(name = "IndustrialTransportPlanBo", description = "交通物流规划业务对象")
public class IndustrialTransportPlanBo extends BaseEntity {

    /**
     * 主键id
     */
    @NotBlank(message = "主键id不能为空", groups = {EditGroup.class})
    @Schema(name = "主键id")
    private String id;

    /**
     * 规划名称
     */
    @NotBlank(message = "规划名称不能为空", groups = {AddGroup.class, EditGroup.class})
    @Schema(name = "规划名称")
    private String planName;

    /**
     * 规划类型
     */
    @NotBlank(message = "规划类型不能为空", groups = {AddGroup.class, EditGroup.class})
    @Schema(name = "规划类型")
    private String planType;

    /**
     * 规划发布日期
     */
    @NotNull(message = "规划发布日期不能为空", groups = {AddGroup.class, EditGroup.class})
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(name = "规划发布日期")
    private Date planSendDate;

    /**
     * 规划期
     */
    @NotBlank(message = "规划期不能为空", groups = {AddGroup.class, EditGroup.class})
    @Schema(name = "规划期")
    private String planDeadline;

    /**
     * 编制单位
     */
    @NotBlank(message = "编制单位不能为空", groups = {AddGroup.class, EditGroup.class})
    @Schema(name = "编制单位")
    private String preparedBy;

    /**
     * 主体单位
     */
    @NotBlank(message = "主体单位不能为空", groups = {AddGroup.class, EditGroup.class})
    @Schema(name = "主体单位")
    private String mainEntity;

    /**
     * 地址
     */
    @Schema(name = "地址")
    private String address;

    /**
     * 经度
     */
    @Schema(name = "经度")
    private String longitude;

    /**
     * 纬度
     */
    @Schema(name = "纬度")
    private String latitude;

    /**
     * 备注
     */
    @Schema(name = "备注")
    private String remark;

    /**
     * 数据状态
     */
    @Schema(name = "数据状态")
    @NotNull(message = "数据状态不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long dataStatus;

    /**
     * 规划原文
     */
    @Schema(name = "规划原文")
    private String fileList1;

    /**
     * 规划总图
     */
    @Schema(name = "规划总图")
    private String fileList2;

    /**
     * 规划用地地图
     */
    @Schema(name = "规划用地地图")
    private String fileList3;

    /**
     * 规划目标/指标
     */
    @Schema(name = "规划目标/指标")
    private String fileList4;

    /**
     * 项目库表
     */
    @Schema(name = "项目库表")
    private String fileList5;

    /**
     * 其他资料
     */
    @Schema(name = "其他资料")
    private String fileList6;
    @Schema(name = "创建时间")
    private Date beginCreateTime;
    @Schema(name = "更新时间")
    private Date endCreateTime;
    @Schema(name = "创建时间")
    private Date beginUpdateTime;
    @Schema(name = "更新时间")
    private Date endUpdateTime;

    /**
     * 重点项目
     */
    @Schema(description = "重点项目")
    private String majorProject;

}
